home *** CD-ROM | disk | FTP | other *** search
/ Cre@te Online 2000 December / Cre@teOnline CD05.iso / MacSoft / XML ConsoleMax.sea / XML ConsoleMax / Required / swingall.jar / javax / swing / DebugGraphics.class (.txt) < prev    next >
Encoding:
Java Class File  |  1999-07-15  |  18.7 KB  |  1,065 lines

  1. package javax.swing;
  2.  
  3. import java.awt.Color;
  4. import java.awt.Component;
  5. import java.awt.Font;
  6. import java.awt.FontMetrics;
  7. import java.awt.Graphics;
  8. import java.awt.Image;
  9. import java.awt.Point;
  10. import java.awt.Rectangle;
  11. import java.awt.Shape;
  12. import java.awt.Toolkit;
  13. import java.awt.Window;
  14. import java.awt.image.FilteredImageSource;
  15. import java.awt.image.ImageObserver;
  16. import java.awt.image.ImageProducer;
  17. import java.io.PrintStream;
  18.  
  19. public class DebugGraphics extends Graphics {
  20.    Graphics graphics;
  21.    Image buffer;
  22.    int debugOptions;
  23.    int graphicsID;
  24.    int xOffset;
  25.    int yOffset;
  26.    private static int graphicsCount = 0;
  27.    public static final int LOG_OPTION = 1;
  28.    public static final int FLASH_OPTION = 2;
  29.    public static final int BUFFERED_OPTION = 4;
  30.    public static final int NONE_OPTION = -1;
  31.    private static final Class debugGraphicsInfoKey;
  32.    // $FF: synthetic field
  33.    static Class class$javax$swing$DebugGraphicsInfo;
  34.  
  35.    static {
  36.       debugGraphicsInfoKey = class$javax$swing$DebugGraphicsInfo != null ? class$javax$swing$DebugGraphicsInfo : (class$javax$swing$DebugGraphicsInfo = class$("javax.swing.DebugGraphicsInfo"));
  37.       if (SwingUtilities.is1dot2) {
  38.          System.err.println("warning: running 1.1 version of DebugGraphics");
  39.       }
  40.  
  41.    }
  42.  
  43.    public DebugGraphics() {
  44.       this.graphicsID = graphicsCount++;
  45.       this.buffer = null;
  46.       this.xOffset = this.yOffset = 0;
  47.    }
  48.  
  49.    public DebugGraphics(Graphics var1) {
  50.       this();
  51.       this.graphics = var1;
  52.    }
  53.  
  54.    public DebugGraphics(Graphics var1, JComponent var2) {
  55.       this(var1);
  56.       this.setDebugOptions(var2.shouldDebugGraphics());
  57.    }
  58.  
  59.    // $FF: synthetic method
  60.    static Class class$(String var0) {
  61.       try {
  62.          return Class.forName(var0);
  63.       } catch (ClassNotFoundException var2) {
  64.          throw new NoClassDefFoundError(((Throwable)var2).getMessage());
  65.       }
  66.    }
  67.  
  68.    public void clearRect(int var1, int var2, int var3, int var4) {
  69.       DebugGraphicsInfo var5 = info();
  70.       if (this.debugLog()) {
  71.          info().log(this.toShortString() + " Clearing rect: " + new Rectangle(var1, var2, var3, var4));
  72.       }
  73.  
  74.       if (this.isDrawingBuffer()) {
  75.          if (this.debugBuffered()) {
  76.             Graphics var6 = this.debugGraphics();
  77.             var6.clearRect(var1, var2, var3, var4);
  78.             var6.dispose();
  79.          }
  80.       } else if (this.debugFlash()) {
  81.          Color var9 = this.getColor();
  82.          int var8 = var5.flashCount * 2 - 1;
  83.  
  84.          for(int var7 = 0; var7 < var8; ++var7) {
  85.             this.graphics.setColor(var7 % 2 == 0 ? var5.flashColor : var9);
  86.             this.graphics.clearRect(var1, var2, var3, var4);
  87.             Toolkit.getDefaultToolkit().sync();
  88.             this.sleep(var5.flashTime);
  89.          }
  90.  
  91.          this.graphics.setColor(var9);
  92.       }
  93.  
  94.       this.graphics.clearRect(var1, var2, var3, var4);
  95.    }
  96.  
  97.    public void clipRect(int var1, int var2, int var3, int var4) {
  98.       this.graphics.clipRect(var1, var2, var3, var4);
  99.       if (this.debugLog()) {
  100.          info().log(this.toShortString() + " Setting clipRect: " + new Rectangle(var1, var2, var3, var4) + " New clipRect: " + this.graphics.getClip());
  101.       }
  102.  
  103.    }
  104.  
  105.    public void copyArea(int var1, int var2, int var3, int var4, int var5, int var6) {
  106.       if (this.debugLog()) {
  107.          info().log(this.toShortString() + " Copying area from: " + new Rectangle(var1, var2, var3, var4) + " to: " + new Point(var5, var6));
  108.       }
  109.  
  110.       this.graphics.copyArea(var1, var2, var3, var4, var5, var6);
  111.    }
  112.  
  113.    public Graphics create() {
  114.       DebugGraphics var1 = new DebugGraphics();
  115.       var1.graphics = this.graphics.create();
  116.       var1.debugOptions = this.debugOptions;
  117.       var1.buffer = this.buffer;
  118.       return var1;
  119.    }
  120.  
  121.    public Graphics create(int var1, int var2, int var3, int var4) {
  122.       DebugGraphics var5 = new DebugGraphics();
  123.       var5.graphics = this.graphics.create(var1, var2, var3, var4);
  124.       var5.debugOptions = this.debugOptions;
  125.       var5.buffer = this.buffer;
  126.       var5.xOffset = this.xOffset + var1;
  127.       var5.yOffset = this.yOffset + var2;
  128.       return var5;
  129.    }
  130.  
  131.    boolean debugBuffered() {
  132.       return (this.debugOptions & 4) == 4;
  133.    }
  134.  
  135.    static int debugComponentCount() {
  136.       DebugGraphicsInfo var0 = info();
  137.       return var0 != null && var0.componentToDebug != null ? var0.componentToDebug.size() : 0;
  138.    }
  139.  
  140.    boolean debugFlash() {
  141.       return (this.debugOptions & 2) == 2;
  142.    }
  143.  
  144.    private Graphics debugGraphics() {
  145.       DebugGraphicsInfo var2 = info();
  146.       if (var2.debugFrame == null) {
  147.          var2.debugFrame = new JFrame();
  148.          var2.debugFrame.setSize(500, 500);
  149.       }
  150.  
  151.       JFrame var3 = var2.debugFrame;
  152.       ((Window)var3).show();
  153.       DebugGraphics var1 = new DebugGraphics(((Component)var3).getGraphics());
  154.       var1.setFont(this.getFont());
  155.       var1.setColor(this.getColor());
  156.       var1.translate(this.xOffset, this.yOffset);
  157.       var1.setClip(this.getClipBounds());
  158.       if (this.debugFlash()) {
  159.          var1.setDebugOptions(2);
  160.       }
  161.  
  162.       return var1;
  163.    }
  164.  
  165.    boolean debugLog() {
  166.       return (this.debugOptions & 1) == 1;
  167.    }
  168.  
  169.    public void dispose() {
  170.       this.graphics.dispose();
  171.       this.graphics = null;
  172.    }
  173.  
  174.    public void draw3DRect(int var1, int var2, int var3, int var4, boolean var5) {
  175.       DebugGraphicsInfo var6 = info();
  176.       if (this.debugLog()) {
  177.          info().log(this.toShortString() + " Drawing 3D rect: " + new Rectangle(var1, var2, var3, var4) + " Raised bezel: " + var5);
  178.       }
  179.  
  180.       if (this.isDrawingBuffer()) {
  181.          if (this.debugBuffered()) {
  182.             Graphics var7 = this.debugGraphics();
  183.             var7.draw3DRect(var1, var2, var3, var4, var5);
  184.             var7.dispose();
  185.          }
  186.       } else if (this.debugFlash()) {
  187.          Color var10 = this.getColor();
  188.          int var9 = var6.flashCount * 2 - 1;
  189.  
  190.          for(int var8 = 0; var8 < var9; ++var8) {
  191.             this.graphics.setColor(var8 % 2 == 0 ? var6.flashColor : var10);
  192.             this.graphics.draw3DRect(var1, var2, var3, var4, var5);
  193.             Toolkit.getDefaultToolkit().sync();
  194.             this.sleep(var6.flashTime);
  195.          }
  196.  
  197.          this.graphics.setColor(var10);
  198.       }
  199.  
  200.       this.graphics.draw3DRect(var1, var2, var3, var4, var5);
  201.    }
  202.  
  203.    public void drawArc(int var1, int var2, int var3, int var4, int var5, int var6) {
  204.       DebugGraphicsInfo var7 = info();
  205.       if (this.debugLog()) {
  206.          info().log(this.toShortString() + " Drawing arc: " + new Rectangle(var1, var2, var3, var4) + " startAngle: " + var5 + " arcAngle: " + var6);
  207.       }
  208.  
  209.       if (this.isDrawingBuffer()) {
  210.          if (this.debugBuffered()) {
  211.             Graphics var8 = this.debugGraphics();
  212.             var8.drawArc(var1, var2, var3, var4, var5, var6);
  213.             var8.dispose();
  214.          }
  215.       } else if (this.debugFlash()) {
  216.          Color var11 = this.getColor();
  217.          int var10 = var7.flashCount * 2 - 1;
  218.  
  219.          for(int var9 = 0; var9 < var10; ++var9) {
  220.             this.graphics.setColor(var9 % 2 == 0 ? var7.flashColor : var11);
  221.             this.graphics.drawArc(var1, var2, var3, var4, var5, var6);
  222.             Toolkit.getDefaultToolkit().sync();
  223.             this.sleep(var7.flashTime);
  224.          }
  225.  
  226.          this.graphics.setColor(var11);
  227.       }
  228.  
  229.       this.graphics.drawArc(var1, var2, var3, var4, var5, var6);
  230.    }
  231.  
  232.    public void drawBytes(byte[] var1, int var2, int var3, int var4, int var5) {
  233.       DebugGraphicsInfo var6 = info();
  234.       Font var7 = this.graphics.getFont();
  235.       if (this.debugLog()) {
  236.          info().log(this.toShortString() + " Drawing bytes at: " + new Point(var4, var5));
  237.       }
  238.  
  239.       if (this.isDrawingBuffer()) {
  240.          if (this.debugBuffered()) {
  241.             Graphics var8 = this.debugGraphics();
  242.             var8.drawBytes(var1, var2, var3, var4, var5);
  243.             var8.dispose();
  244.          }
  245.       } else if (this.debugFlash()) {
  246.          Color var11 = this.getColor();
  247.          int var10 = var6.flashCount * 2 - 1;
  248.  
  249.          for(int var9 = 0; var9 < var10; ++var9) {
  250.             this.graphics.setColor(var9 % 2 == 0 ? var6.flashColor : var11);
  251.             this.graphics.drawBytes(var1, var2, var3, var4, var5);
  252.             Toolkit.getDefaultToolkit().sync();
  253.             this.sleep(var6.flashTime);
  254.          }
  255.  
  256.          this.graphics.setColor(var11);
  257.       }
  258.  
  259.       this.graphics.drawBytes(var1, var2, var3, var4, var5);
  260.    }
  261.  
  262.    public void drawChars(char[] var1, int var2, int var3, int var4, int var5) {
  263.       DebugGraphicsInfo var6 = info();
  264.       Font var7 = this.graphics.getFont();
  265.       if (this.debugLog()) {
  266.          info().log(this.toShortString() + " Drawing chars at " + new Point(var4, var5));
  267.       }
  268.  
  269.       if (this.isDrawingBuffer()) {
  270.          if (this.debugBuffered()) {
  271.             Graphics var8 = this.debugGraphics();
  272.             var8.drawChars(var1, var2, var3, var4, var5);
  273.             var8.dispose();
  274.          }
  275.       } else if (this.debugFlash()) {
  276.          Color var11 = this.getColor();
  277.          int var10 = var6.flashCount * 2 - 1;
  278.  
  279.          for(int var9 = 0; var9 < var10; ++var9) {
  280.             this.graphics.setColor(var9 % 2 == 0 ? var6.flashColor : var11);
  281.             this.graphics.drawChars(var1, var2, var3, var4, var5);
  282.             Toolkit.getDefaultToolkit().sync();
  283.             this.sleep(var6.flashTime);
  284.          }
  285.  
  286.          this.graphics.setColor(var11);
  287.       }
  288.  
  289.       this.graphics.drawChars(var1, var2, var3, var4, var5);
  290.    }
  291.  
  292.    public boolean drawImage(Image var1, int var2, int var3, int var4, int var5, int var6, int var7, int var8, int var9, Color var10, ImageObserver var11) {
  293.       DebugGraphicsInfo var12 = info();
  294.       if (this.debugLog()) {
  295.          var12.log(this.toShortString() + " Drawing image: " + var1 + " destination: " + new Rectangle(var2, var3, var4, var5) + " source: " + new Rectangle(var6, var7, var8, var9) + ", bgcolor: " + var10);
  296.       }
  297.  
  298.       if (this.isDrawingBuffer()) {
  299.          if (this.debugBuffered()) {
  300.             Graphics var13 = this.debugGraphics();
  301.             var13.drawImage(var1, var2, var3, var4, var5, var6, var7, var8, var9, var10, var11);
  302.             var13.dispose();
  303.          }
  304.       } else if (this.debugFlash()) {
  305.          int var14 = var12.flashCount * 2 - 1;
  306.          ImageProducer var15 = var1.getSource();
  307.          FilteredImageSource var16 = new FilteredImageSource(var15, new DebugGraphicsFilter(var12.flashColor));
  308.          Image var17 = Toolkit.getDefaultToolkit().createImage(var16);
  309.          DebugGraphicsObserver var18 = new DebugGraphicsObserver();
  310.  
  311.          for(int var19 = 0; var19 < var14; ++var19) {
  312.             this.graphics.drawImage(var19 % 2 == 0 ? var17 : var1, var2, var3, var4, var5, var6, var7, var8, var9, var10, var18);
  313.             Toolkit.getDefaultToolkit().sync();
  314.  
  315.             while(!var18.allBitsPresent() && !var18.imageHasProblem()) {
  316.                this.sleep(10);
  317.             }
  318.  
  319.             this.sleep(var12.flashTime);
  320.          }
  321.       }
  322.  
  323.       return this.graphics.drawImage(var1, var2, var3, var4, var5, var6, var7, var8, var9, var10, var11);
  324.    }
  325.  
  326.    public boolean drawImage(Image var1, int var2, int var3, int var4, int var5, int var6, int var7, int var8, int var9, ImageObserver var10) {
  327.       DebugGraphicsInfo var11 = info();
  328.       if (this.debugLog()) {
  329.          var11.log(this.toShortString() + " Drawing image: " + var1 + " destination: " + new Rectangle(var2, var3, var4, var5) + " source: " + new Rectangle(var6, var7, var8, var9));
  330.       }
  331.  
  332.       if (this.isDrawingBuffer()) {
  333.          if (this.debugBuffered()) {
  334.             Graphics var12 = this.debugGraphics();
  335.             var12.drawImage(var1, var2, var3, var4, var5, var6, var7, var8, var9, var10);
  336.             var12.dispose();
  337.          }
  338.       } else if (this.debugFlash()) {
  339.          int var13 = var11.flashCount * 2 - 1;
  340.          ImageProducer var14 = var1.getSource();
  341.          FilteredImageSource var15 = new FilteredImageSource(var14, new DebugGraphicsFilter(var11.flashColor));
  342.          Image var16 = Toolkit.getDefaultToolkit().createImage(var15);
  343.          DebugGraphicsObserver var17 = new DebugGraphicsObserver();
  344.  
  345.          for(int var18 = 0; var18 < var13; ++var18) {
  346.             this.graphics.drawImage(var18 % 2 == 0 ? var16 : var1, var2, var3, var4, var5, var6, var7, var8, var9, var17);
  347.             Toolkit.getDefaultToolkit().sync();
  348.  
  349.             while(!var17.allBitsPresent() && !var17.imageHasProblem()) {
  350.                this.sleep(10);
  351.             }
  352.  
  353.             this.sleep(var11.flashTime);
  354.          }
  355.       }
  356.  
  357.       return this.graphics.drawImage(var1, var2, var3, var4, var5, var6, var7, var8, var9, var10);
  358.    }
  359.  
  360.    public boolean drawImage(Image var1, int var2, int var3, int var4, int var5, Color var6, ImageObserver var7) {
  361.       DebugGraphicsInfo var8 = info();
  362.       if (this.debugLog()) {
  363.          var8.log(this.toShortString() + " Drawing image: " + var1 + " at: " + new Rectangle(var2, var3, var4, var5) + ", bgcolor: " + var6);
  364.       }
  365.  
  366.       if (this.isDrawingBuffer()) {
  367.          if (this.debugBuffered()) {
  368.             Graphics var9 = this.debugGraphics();
  369.             var9.drawImage(var1, var2, var3, var4, var5, var6, var7);
  370.             var9.dispose();
  371.          }
  372.       } else if (this.debugFlash()) {
  373.          int var10 = var8.flashCount * 2 - 1;
  374.          ImageProducer var11 = var1.getSource();
  375.          FilteredImageSource var12 = new FilteredImageSource(var11, new DebugGraphicsFilter(var8.flashColor));
  376.          Image var13 = Toolkit.getDefaultToolkit().createImage(var12);
  377.          DebugGraphicsObserver var14 = new DebugGraphicsObserver();
  378.  
  379.          for(int var15 = 0; var15 < var10; ++var15) {
  380.             this.graphics.drawImage(var15 % 2 == 0 ? var13 : var1, var2, var3, var4, var5, var6, var14);
  381.             Toolkit.getDefaultToolkit().sync();
  382.  
  383.             while(!var14.allBitsPresent() && !var14.imageHasProblem()) {
  384.                this.sleep(10);
  385.             }
  386.  
  387.             this.sleep(var8.flashTime);
  388.          }
  389.       }
  390.  
  391.       return this.graphics.drawImage(var1, var2, var3, var4, var5, var6, var7);
  392.    }
  393.  
  394.    public boolean drawImage(Image var1, int var2, int var3, int var4, int var5, ImageObserver var6) {
  395.       DebugGraphicsInfo var7 = info();
  396.       if (this.debugLog()) {
  397.          var7.log(this.toShortString() + " Drawing image: " + var1 + " at: " + new Rectangle(var2, var3, var4, var5));
  398.       }
  399.  
  400.       if (this.isDrawingBuffer()) {
  401.          if (this.debugBuffered()) {
  402.             Graphics var8 = this.debugGraphics();
  403.             var8.drawImage(var1, var2, var3, var4, var5, var6);
  404.             var8.dispose();
  405.          }
  406.       } else if (this.debugFlash()) {
  407.          int var9 = var7.flashCount * 2 - 1;
  408.          ImageProducer var10 = var1.getSource();
  409.          FilteredImageSource var11 = new FilteredImageSource(var10, new DebugGraphicsFilter(var7.flashColor));
  410.          Image var12 = Toolkit.getDefaultToolkit().createImage(var11);
  411.          DebugGraphicsObserver var13 = new DebugGraphicsObserver();
  412.  
  413.          for(int var14 = 0; var14 < var9; ++var14) {
  414.             this.graphics.drawImage(var14 % 2 == 0 ? var12 : var1, var2, var3, var4, var5, var13);
  415.             Toolkit.getDefaultToolkit().sync();
  416.  
  417.             while(!var13.allBitsPresent() && !var13.imageHasProblem()) {
  418.                this.sleep(10);
  419.             }
  420.  
  421.             this.sleep(var7.flashTime);
  422.          }
  423.       }
  424.  
  425.       return this.graphics.drawImage(var1, var2, var3, var4, var5, var6);
  426.    }
  427.  
  428.    public boolean drawImage(Image var1, int var2, int var3, Color var4, ImageObserver var5) {
  429.       DebugGraphicsInfo var6 = info();
  430.       if (this.debugLog()) {
  431.          var6.log(this.toShortString() + " Drawing image: " + var1 + " at: " + new Point(var2, var3) + ", bgcolor: " + var4);
  432.       }
  433.  
  434.       if (this.isDrawingBuffer()) {
  435.          if (this.debugBuffered()) {
  436.             Graphics var7 = this.debugGraphics();
  437.             var7.drawImage(var1, var2, var3, var4, var5);
  438.             var7.dispose();
  439.          }
  440.       } else if (this.debugFlash()) {
  441.          int var8 = var6.flashCount * 2 - 1;
  442.          ImageProducer var9 = var1.getSource();
  443.          FilteredImageSource var10 = new FilteredImageSource(var9, new DebugGraphicsFilter(var6.flashColor));
  444.          Image var11 = Toolkit.getDefaultToolkit().createImage(var10);
  445.          DebugGraphicsObserver var12 = new DebugGraphicsObserver();
  446.  
  447.          for(int var13 = 0; var13 < var8; ++var13) {
  448.             this.graphics.drawImage(var13 % 2 == 0 ? var11 : var1, var2, var3, var4, var12);
  449.             Toolkit.getDefaultToolkit().sync();
  450.  
  451.             while(!var12.allBitsPresent() && !var12.imageHasProblem()) {
  452.                this.sleep(10);
  453.             }
  454.  
  455.             this.sleep(var6.flashTime);
  456.          }
  457.       }
  458.  
  459.       return this.graphics.drawImage(var1, var2, var3, var4, var5);
  460.    }
  461.  
  462.    public boolean drawImage(Image var1, int var2, int var3, ImageObserver var4) {
  463.       DebugGraphicsInfo var5 = info();
  464.       if (this.debugLog()) {
  465.          var5.log(this.toShortString() + " Drawing image: " + var1 + " at: " + new Point(var2, var3));
  466.       }
  467.  
  468.       if (this.isDrawingBuffer()) {
  469.          if (this.debugBuffered()) {
  470.             Graphics var6 = this.debugGraphics();
  471.             var6.drawImage(var1, var2, var3, var4);
  472.             var6.dispose();
  473.          }
  474.       } else if (this.debugFlash()) {
  475.          int var7 = var5.flashCount * 2 - 1;
  476.          ImageProducer var8 = var1.getSource();
  477.          FilteredImageSource var9 = new FilteredImageSource(var8, new DebugGraphicsFilter(var5.flashColor));
  478.          Image var10 = Toolkit.getDefaultToolkit().createImage(var9);
  479.          DebugGraphicsObserver var11 = new DebugGraphicsObserver();
  480.  
  481.          for(int var12 = 0; var12 < var7; ++var12) {
  482.             this.graphics.drawImage(var12 % 2 == 0 ? var10 : var1, var2, var3, var11);
  483.             Toolkit.getDefaultToolkit().sync();
  484.  
  485.             while(!var11.allBitsPresent() && !var11.imageHasProblem()) {
  486.                this.sleep(10);
  487.             }
  488.  
  489.             this.sleep(var5.flashTime);
  490.          }
  491.       }
  492.  
  493.       return this.graphics.drawImage(var1, var2, var3, var4);
  494.    }
  495.  
  496.    public void drawLine(int var1, int var2, int var3, int var4) {
  497.       DebugGraphicsInfo var5 = info();
  498.       if (this.debugLog()) {
  499.          info().log(this.toShortString() + " Drawing line: from " + this.pointToString(var1, var2) + " to " + this.pointToString(var3, var4));
  500.       }
  501.  
  502.       if (this.isDrawingBuffer()) {
  503.          if (this.debugBuffered()) {
  504.             Graphics var6 = this.debugGraphics();
  505.             var6.drawLine(var1, var2, var3, var4);
  506.             var6.dispose();
  507.          }
  508.       } else if (this.debugFlash()) {
  509.          Color var9 = this.getColor();
  510.          int var8 = var5.flashCount * 2 - 1;
  511.  
  512.          for(int var7 = 0; var7 < var8; ++var7) {
  513.             this.graphics.setColor(var7 % 2 == 0 ? var5.flashColor : var9);
  514.             this.graphics.drawLine(var1, var2, var3, var4);
  515.             Toolkit.getDefaultToolkit().sync();
  516.             this.sleep(var5.flashTime);
  517.          }
  518.  
  519.          this.graphics.setColor(var9);
  520.       }
  521.  
  522.       this.graphics.drawLine(var1, var2, var3, var4);
  523.    }
  524.  
  525.    public void drawOval(int var1, int var2, int var3, int var4) {
  526.       DebugGraphicsInfo var5 = info();
  527.       if (this.debugLog()) {
  528.          info().log(this.toShortString() + " Drawing oval: " + new Rectangle(var1, var2, var3, var4));
  529.       }
  530.  
  531.       if (this.isDrawingBuffer()) {
  532.          if (this.debugBuffered()) {
  533.             Graphics var6 = this.debugGraphics();
  534.             var6.drawOval(var1, var2, var3, var4);
  535.             var6.dispose();
  536.          }
  537.       } else if (this.debugFlash()) {
  538.          Color var9 = this.getColor();
  539.          int var8 = var5.flashCount * 2 - 1;
  540.  
  541.          for(int var7 = 0; var7 < var8; ++var7) {
  542.             this.graphics.setColor(var7 % 2 == 0 ? var5.flashColor : var9);
  543.             this.graphics.drawOval(var1, var2, var3, var4);
  544.             Toolkit.getDefaultToolkit().sync();
  545.             this.sleep(var5.flashTime);
  546.          }
  547.  
  548.          this.graphics.setColor(var9);
  549.       }
  550.  
  551.       this.graphics.drawOval(var1, var2, var3, var4);
  552.    }
  553.  
  554.    public void drawPolygon(int[] var1, int[] var2, int var3) {
  555.       DebugGraphicsInfo var4 = info();
  556.       if (this.debugLog()) {
  557.          info().log(this.toShortString() + " Drawing polygon: " + " nPoints: " + var3 + " X's: " + var1 + " Y's: " + var2);
  558.       }
  559.  
  560.       if (this.isDrawingBuffer()) {
  561.          if (this.debugBuffered()) {
  562.             Graphics var5 = this.debugGraphics();
  563.             var5.drawPolygon(var1, var2, var3);
  564.             var5.dispose();
  565.          }
  566.       } else if (this.debugFlash()) {
  567.          Color var8 = this.getColor();
  568.          int var7 = var4.flashCount * 2 - 1;
  569.  
  570.          for(int var6 = 0; var6 < var7; ++var6) {
  571.             this.graphics.setColor(var6 % 2 == 0 ? var4.flashColor : var8);
  572.             this.graphics.drawPolygon(var1, var2, var3);
  573.             Toolkit.getDefaultToolkit().sync();
  574.             this.sleep(var4.flashTime);
  575.          }
  576.  
  577.          this.graphics.setColor(var8);
  578.       }
  579.  
  580.       this.graphics.drawPolygon(var1, var2, var3);
  581.    }
  582.  
  583.    public void drawPolyline(int[] var1, int[] var2, int var3) {
  584.       DebugGraphicsInfo var4 = info();
  585.       if (this.debugLog()) {
  586.          info().log(this.toShortString() + " Drawing polyline: " + " nPoints: " + var3 + " X's: " + var1 + " Y's: " + var2);
  587.       }
  588.  
  589.       if (this.isDrawingBuffer()) {
  590.          if (this.debugBuffered()) {
  591.             Graphics var5 = this.debugGraphics();
  592.             var5.drawPolyline(var1, var2, var3);
  593.             var5.dispose();
  594.          }
  595.       } else if (this.debugFlash()) {
  596.          Color var8 = this.getColor();
  597.          int var7 = var4.flashCount * 2 - 1;
  598.  
  599.          for(int var6 = 0; var6 < var7; ++var6) {
  600.             this.graphics.setColor(var6 % 2 == 0 ? var4.flashColor : var8);
  601.             this.graphics.drawPolyline(var1, var2, var3);
  602.             Toolkit.getDefaultToolkit().sync();
  603.             this.sleep(var4.flashTime);
  604.          }
  605.  
  606.          this.graphics.setColor(var8);
  607.       }
  608.  
  609.       this.graphics.drawPolyline(var1, var2, var3);
  610.    }
  611.  
  612.    public void drawRect(int var1, int var2, int var3, int var4) {
  613.       DebugGraphicsInfo var5 = info();
  614.       if (this.debugLog()) {
  615.          info().log(this.toShortString() + " Drawing rect: " + new Rectangle(var1, var2, var3, var4));
  616.       }
  617.  
  618.       if (this.isDrawingBuffer()) {
  619.          if (this.debugBuffered()) {
  620.             Graphics var6 = this.debugGraphics();
  621.             var6.drawRect(var1, var2, var3, var4);
  622.             var6.dispose();
  623.          }
  624.       } else if (this.debugFlash()) {
  625.          Color var9 = this.getColor();
  626.          int var8 = var5.flashCount * 2 - 1;
  627.  
  628.          for(int var7 = 0; var7 < var8; ++var7) {
  629.             this.graphics.setColor(var7 % 2 == 0 ? var5.flashColor : var9);
  630.             this.graphics.drawRect(var1, var2, var3, var4);
  631.             Toolkit.getDefaultToolkit().sync();
  632.             this.sleep(var5.flashTime);
  633.          }
  634.  
  635.          this.graphics.setColor(var9);
  636.       }
  637.  
  638.       this.graphics.drawRect(var1, var2, var3, var4);
  639.    }
  640.  
  641.    public void drawRoundRect(int var1, int var2, int var3, int var4, int var5, int var6) {
  642.       DebugGraphicsInfo var7 = info();
  643.       if (this.debugLog()) {
  644.          info().log(this.toShortString() + " Drawing round rect: " + new Rectangle(var1, var2, var3, var4) + " arcWidth: " + var5 + " archHeight: " + var6);
  645.       }
  646.  
  647.       if (this.isDrawingBuffer()) {
  648.          if (this.debugBuffered()) {
  649.             Graphics var8 = this.debugGraphics();
  650.             var8.drawRoundRect(var1, var2, var3, var4, var5, var6);
  651.             var8.dispose();
  652.          }
  653.       } else if (this.debugFlash()) {
  654.          Color var11 = this.getColor();
  655.          int var10 = var7.flashCount * 2 - 1;
  656.  
  657.          for(int var9 = 0; var9 < var10; ++var9) {
  658.             this.graphics.setColor(var9 % 2 == 0 ? var7.flashColor : var11);
  659.             this.graphics.drawRoundRect(var1, var2, var3, var4, var5, var6);
  660.             Toolkit.getDefaultToolkit().sync();
  661.             this.sleep(var7.flashTime);
  662.          }
  663.  
  664.          this.graphics.setColor(var11);
  665.       }
  666.  
  667.       this.graphics.drawRoundRect(var1, var2, var3, var4, var5, var6);
  668.    }
  669.  
  670.    public void drawString(String var1, int var2, int var3) {
  671.       DebugGraphicsInfo var4 = info();
  672.       if (this.debugLog()) {
  673.          info().log(this.toShortString() + " Drawing string: \"" + var1 + "\" at: " + new Point(var2, var3));
  674.       }
  675.  
  676.       if (this.isDrawingBuffer()) {
  677.          if (this.debugBuffered()) {
  678.             Graphics var5 = this.debugGraphics();
  679.             var5.drawString(var1, var2, var3);
  680.             var5.dispose();
  681.          }
  682.       } else if (this.debugFlash()) {
  683.          Color var8 = this.getColor();
  684.          int var7 = var4.flashCount * 2 - 1;
  685.  
  686.          for(int var6 = 0; var6 < var7; ++var6) {
  687.             this.graphics.setColor(var6 % 2 == 0 ? var4.flashColor : var8);
  688.             this.graphics.drawString(var1, var2, var3);
  689.             Toolkit.getDefaultToolkit().sync();
  690.             this.sleep(var4.flashTime);
  691.          }
  692.  
  693.          this.graphics.setColor(var8);
  694.       }
  695.  
  696.       this.graphics.drawString(var1, var2, var3);
  697.    }
  698.  
  699.    public void fill3DRect(int var1, int var2, int var3, int var4, boolean var5) {
  700.       DebugGraphicsInfo var6 = info();
  701.       if (this.debugLog()) {
  702.          info().log(this.toShortString() + " Filling 3D rect: " + new Rectangle(var1, var2, var3, var4) + " Raised bezel: " + var5);
  703.       }
  704.  
  705.       if (this.isDrawingBuffer()) {
  706.          if (this.debugBuffered()) {
  707.             Graphics var7 = this.debugGraphics();
  708.             var7.fill3DRect(var1, var2, var3, var4, var5);
  709.             var7.dispose();
  710.          }
  711.       } else if (this.debugFlash()) {
  712.          Color var10 = this.getColor();
  713.          int var9 = var6.flashCount * 2 - 1;
  714.  
  715.          for(int var8 = 0; var8 < var9; ++var8) {
  716.             this.graphics.setColor(var8 % 2 == 0 ? var6.flashColor : var10);
  717.             this.graphics.fill3DRect(var1, var2, var3, var4, var5);
  718.             Toolkit.getDefaultToolkit().sync();
  719.             this.sleep(var6.flashTime);
  720.          }
  721.  
  722.          this.graphics.setColor(var10);
  723.       }
  724.  
  725.       this.graphics.fill3DRect(var1, var2, var3, var4, var5);
  726.    }
  727.  
  728.    public void fillArc(int var1, int var2, int var3, int var4, int var5, int var6) {
  729.       DebugGraphicsInfo var7 = info();
  730.       if (this.debugLog()) {
  731.          info().log(this.toShortString() + " Filling arc: " + new Rectangle(var1, var2, var3, var4) + " startAngle: " + var5 + " arcAngle: " + var6);
  732.       }
  733.  
  734.       if (this.isDrawingBuffer()) {
  735.          if (this.debugBuffered()) {
  736.             Graphics var8 = this.debugGraphics();
  737.             var8.fillArc(var1, var2, var3, var4, var5, var6);
  738.             var8.dispose();
  739.          }
  740.       } else if (this.debugFlash()) {
  741.          Color var11 = this.getColor();
  742.          int var10 = var7.flashCount * 2 - 1;
  743.  
  744.          for(int var9 = 0; var9 < var10; ++var9) {
  745.             this.graphics.setColor(var9 % 2 == 0 ? var7.flashColor : var11);
  746.             this.graphics.fillArc(var1, var2, var3, var4, var5, var6);
  747.             Toolkit.getDefaultToolkit().sync();
  748.             this.sleep(var7.flashTime);
  749.          }
  750.  
  751.          this.graphics.setColor(var11);
  752.       }
  753.  
  754.       this.graphics.fillArc(var1, var2, var3, var4, var5, var6);
  755.    }
  756.  
  757.    public void fillOval(int var1, int var2, int var3, int var4) {
  758.       DebugGraphicsInfo var5 = info();
  759.       if (this.debugLog()) {
  760.          info().log(this.toShortString() + " Filling oval: " + new Rectangle(var1, var2, var3, var4));
  761.       }
  762.  
  763.       if (this.isDrawingBuffer()) {
  764.          if (this.debugBuffered()) {
  765.             Graphics var6 = this.debugGraphics();
  766.             var6.fillOval(var1, var2, var3, var4);
  767.             var6.dispose();
  768.          }
  769.       } else if (this.debugFlash()) {
  770.          Color var9 = this.getColor();
  771.          int var8 = var5.flashCount * 2 - 1;
  772.  
  773.          for(int var7 = 0; var7 < var8; ++var7) {
  774.             this.graphics.setColor(var7 % 2 == 0 ? var5.flashColor : var9);
  775.             this.graphics.fillOval(var1, var2, var3, var4);
  776.             Toolkit.getDefaultToolkit().sync();
  777.             this.sleep(var5.flashTime);
  778.          }
  779.  
  780.          this.graphics.setColor(var9);
  781.       }
  782.  
  783.       this.graphics.fillOval(var1, var2, var3, var4);
  784.    }
  785.  
  786.    public void fillPolygon(int[] var1, int[] var2, int var3) {
  787.       DebugGraphicsInfo var4 = info();
  788.       if (this.debugLog()) {
  789.          info().log(this.toShortString() + " Filling polygon: " + " nPoints: " + var3 + " X's: " + var1 + " Y's: " + var2);
  790.       }
  791.  
  792.       if (this.isDrawingBuffer()) {
  793.          if (this.debugBuffered()) {
  794.             Graphics var5 = this.debugGraphics();
  795.             var5.fillPolygon(var1, var2, var3);
  796.             var5.dispose();
  797.          }
  798.       } else if (this.debugFlash()) {
  799.          Color var8 = this.getColor();
  800.          int var7 = var4.flashCount * 2 - 1;
  801.  
  802.          for(int var6 = 0; var6 < var7; ++var6) {
  803.             this.graphics.setColor(var6 % 2 == 0 ? var4.flashColor : var8);
  804.             this.graphics.fillPolygon(var1, var2, var3);
  805.             Toolkit.getDefaultToolkit().sync();
  806.             this.sleep(var4.flashTime);
  807.          }
  808.  
  809.          this.graphics.setColor(var8);
  810.       }
  811.  
  812.       this.graphics.fillPolygon(var1, var2, var3);
  813.    }
  814.  
  815.    public void fillRect(int var1, int var2, int var3, int var4) {
  816.       DebugGraphicsInfo var5 = info();
  817.       if (this.debugLog()) {
  818.          info().log(this.toShortString() + " Filling rect: " + new Rectangle(var1, var2, var3, var4));
  819.       }
  820.  
  821.       if (this.isDrawingBuffer()) {
  822.          if (this.debugBuffered()) {
  823.             Graphics var6 = this.debugGraphics();
  824.             var6.fillRect(var1, var2, var3, var4);
  825.             var6.dispose();
  826.          }
  827.       } else if (this.debugFlash()) {
  828.          Color var9 = this.getColor();
  829.          int var8 = var5.flashCount * 2 - 1;
  830.  
  831.          for(int var7 = 0; var7 < var8; ++var7) {
  832.             this.graphics.setColor(var7 % 2 == 0 ? var5.flashColor : var9);
  833.             this.graphics.fillRect(var1, var2, var3, var4);
  834.             Toolkit.getDefaultToolkit().sync();
  835.             this.sleep(var5.flashTime);
  836.          }
  837.  
  838.          this.graphics.setColor(var9);
  839.       }
  840.  
  841.       this.graphics.fillRect(var1, var2, var3, var4);
  842.    }
  843.  
  844.    public void fillRoundRect(int var1, int var2, int var3, int var4, int var5, int var6) {
  845.       DebugGraphicsInfo var7 = info();
  846.       if (this.debugLog()) {
  847.          info().log(this.toShortString() + " Filling round rect: " + new Rectangle(var1, var2, var3, var4) + " arcWidth: " + var5 + " archHeight: " + var6);
  848.       }
  849.  
  850.       if (this.isDrawingBuffer()) {
  851.          if (this.debugBuffered()) {
  852.             Graphics var8 = this.debugGraphics();
  853.             var8.fillRoundRect(var1, var2, var3, var4, var5, var6);
  854.             var8.dispose();
  855.          }
  856.       } else if (this.debugFlash()) {
  857.          Color var11 = this.getColor();
  858.          int var10 = var7.flashCount * 2 - 1;
  859.  
  860.          for(int var9 = 0; var9 < var10; ++var9) {
  861.             this.graphics.setColor(var9 % 2 == 0 ? var7.flashColor : var11);
  862.             this.graphics.fillRoundRect(var1, var2, var3, var4, var5, var6);
  863.             Toolkit.getDefaultToolkit().sync();
  864.             this.sleep(var7.flashTime);
  865.          }
  866.  
  867.          this.graphics.setColor(var11);
  868.       }
  869.  
  870.       this.graphics.fillRoundRect(var1, var2, var3, var4, var5, var6);
  871.    }
  872.  
  873.    public static Color flashColor() {
  874.       return info().flashColor;
  875.    }
  876.  
  877.    public static int flashCount() {
  878.       return info().flashCount;
  879.    }
  880.  
  881.    public static int flashTime() {
  882.       return info().flashTime;
  883.    }
  884.  
  885.    public Shape getClip() {
  886.       return this.graphics.getClip();
  887.    }
  888.  
  889.    public Rectangle getClipBounds() {
  890.       return this.graphics.getClipBounds();
  891.    }
  892.  
  893.    public Color getColor() {
  894.       return this.graphics.getColor();
  895.    }
  896.  
  897.    public int getDebugOptions() {
  898.       return this.debugOptions;
  899.    }
  900.  
  901.    static int getDebugOptions(JComponent var0) {
  902.       DebugGraphicsInfo var1 = info();
  903.       return var1 == null ? 0 : var1.getDebugOptions(var0);
  904.    }
  905.  
  906.    public Font getFont() {
  907.       return this.graphics.getFont();
  908.    }
  909.  
  910.    public FontMetrics getFontMetrics() {
  911.       return this.graphics.getFontMetrics();
  912.    }
  913.  
  914.    public FontMetrics getFontMetrics(Font var1) {
  915.       return this.graphics.getFontMetrics(var1);
  916.    }
  917.  
  918.    static DebugGraphicsInfo info() {
  919.       DebugGraphicsInfo var0 = (DebugGraphicsInfo)SwingUtilities.appContextGet(debugGraphicsInfoKey);
  920.       if (var0 == null) {
  921.          var0 = new DebugGraphicsInfo();
  922.          SwingUtilities.appContextPut(debugGraphicsInfoKey, var0);
  923.       }
  924.  
  925.       return var0;
  926.    }
  927.  
  928.    public boolean isDrawingBuffer() {
  929.       return this.buffer != null;
  930.    }
  931.  
  932.    public static PrintStream logStream() {
  933.       return info().stream;
  934.    }
  935.  
  936.    String pointToString(int var1, int var2) {
  937.       StringBuffer var3 = new StringBuffer("(" + var1 + ", " + var2 + ")");
  938.       return var3.toString();
  939.    }
  940.  
  941.    public void setClip(int var1, int var2, int var3, int var4) {
  942.       this.graphics.setClip(var1, var2, var3, var4);
  943.       if (this.debugLog()) {
  944.          info().log(this.toShortString() + " Setting new clipRect: " + this.graphics.getClip());
  945.       }
  946.  
  947.    }
  948.  
  949.    public void setClip(Shape var1) {
  950.       this.graphics.setClip(var1);
  951.       if (this.debugLog()) {
  952.          info().log(this.toShortString() + " Setting new clipRect: " + this.graphics.getClip());
  953.       }
  954.  
  955.    }
  956.  
  957.    public void setColor(Color var1) {
  958.       if (this.debugLog()) {
  959.          info().log(this.toShortString() + " Setting color: " + var1);
  960.       }
  961.  
  962.       this.graphics.setColor(var1);
  963.    }
  964.  
  965.    public void setDebugOptions(int var1) {
  966.       if (var1 != 0) {
  967.          if (var1 == -1) {
  968.             if (this.debugOptions != 0) {
  969.                System.err.println(this.toShortString() + " Disabling debug");
  970.                this.debugOptions = 0;
  971.             }
  972.          } else if (this.debugOptions != var1) {
  973.             this.debugOptions |= var1;
  974.             if (this.debugLog()) {
  975.                System.err.println(this.toShortString() + " Enabling debug");
  976.             }
  977.          }
  978.       }
  979.  
  980.    }
  981.  
  982.    static void setDebugOptions(JComponent var0, int var1) {
  983.       info().setDebugOptions(var0, var1);
  984.    }
  985.  
  986.    public static void setFlashColor(Color var0) {
  987.       info().flashColor = var0;
  988.    }
  989.  
  990.    public static void setFlashCount(int var0) {
  991.       info().flashCount = var0;
  992.    }
  993.  
  994.    public static void setFlashTime(int var0) {
  995.       info().flashTime = var0;
  996.    }
  997.  
  998.    public void setFont(Font var1) {
  999.       if (this.debugLog()) {
  1000.          info().log(this.toShortString() + " Setting font: " + var1);
  1001.       }
  1002.  
  1003.       this.graphics.setFont(var1);
  1004.    }
  1005.  
  1006.    public static void setLogStream(PrintStream var0) {
  1007.       info().stream = var0;
  1008.    }
  1009.  
  1010.    public void setPaintMode() {
  1011.       if (this.debugLog()) {
  1012.          info().log(this.toShortString() + " Setting paint mode");
  1013.       }
  1014.  
  1015.       this.graphics.setPaintMode();
  1016.    }
  1017.  
  1018.    public void setXORMode(Color var1) {
  1019.       if (this.debugLog()) {
  1020.          info().log(this.toShortString() + " Setting XOR mode: " + var1);
  1021.       }
  1022.  
  1023.       this.graphics.setXORMode(var1);
  1024.    }
  1025.  
  1026.    static int shouldComponentDebug(JComponent var0) {
  1027.       DebugGraphicsInfo var1 = info();
  1028.       if (var1 == null) {
  1029.          return 0;
  1030.       } else {
  1031.          Object var2 = var0;
  1032.  
  1033.          int var3;
  1034.          for(var3 = 0; var2 != null && var2 instanceof JComponent; var2 = ((Component)var2).getParent()) {
  1035.             var3 |= var1.getDebugOptions((JComponent)var2);
  1036.          }
  1037.  
  1038.          return var3;
  1039.       }
  1040.    }
  1041.  
  1042.    final void sleep(int var1) {
  1043.       try {
  1044.          Thread.sleep((long)var1);
  1045.       } catch (Exception var2) {
  1046.       }
  1047.  
  1048.    }
  1049.  
  1050.    String toShortString() {
  1051.       StringBuffer var1 = new StringBuffer("Graphics" + (this.isDrawingBuffer() ? "<B>" : "") + "(" + this.graphicsID + "-" + this.debugOptions + ")");
  1052.       return var1.toString();
  1053.    }
  1054.  
  1055.    public void translate(int var1, int var2) {
  1056.       if (this.debugLog()) {
  1057.          info().log(this.toShortString() + " Translating by: " + new Point(var1, var2));
  1058.       }
  1059.  
  1060.       this.xOffset += var1;
  1061.       this.yOffset += var2;
  1062.       this.graphics.translate(var1, var2);
  1063.    }
  1064. }
  1065.